import {ModeType} from "@/uni_modules/u-popup/components/u-popup/types";

export default defineComponent({
    props: {
        // 显示方式
        mode: {
            type: String as PropType<ModeType>,
            default: "center",
            validator(value: string): boolean
            {
                return ["center", "top", "bottom", "left", "right"].includes(value);
            }
        },
        // 是否显示
        show: {
            type: Boolean,
            default: false
        },
        // 动画时长（单位：ms）
        duration: {
            type: [String, Number],
            default: 300
        },
        // 层级
        zIndex: {
            type: [String, Number],
            default: 10000
        },
        // 弹窗背景色
        backgroundColor: {
            type: String,
            default: "#fff"
        },
        // 弹窗圆角
        round: {
            type: [Number, String],
            default: 0
        },
        // 内容容器的间距（单位：px）
        spacing: {
            type: [String, Number],
            default: 0
        },
        // 是否为iPhoneX留出底部安全距离
        safeAreaInsetBottom: {
            type: Boolean,
            default: true
        },
        // 是否留出顶部安全距离（状态栏高度）
        safeAreaInsetTop: {
            type: Boolean,
            default: false
        },
        // 是否留出顶部胶囊安全距离（顶部胶囊栏高度）
        safeCapsule: {
            type: Boolean,
            default: false
        },
        // 使用模板数据（开启后需要在template标签内获取组件返回的数据，开启后必须要写template标签，否则在小程序下没有默认插槽的DOM渲染）
        useTemplateData: {
            type: Boolean,
            default: false
        }
    }
});